//
//  QQLrcTVC.swift
//  QQ音乐
//
//  Created by 曹均华 on 16/6/5.
//  Copyright © 2016年 曹均华. All rights reserved.
//  负责展示: 外接给数据, 内部展示
//  负责滚动: 外界给数据, 内部滚动
//  负责进度: 外界给数据, 内部更新进度      

import UIKit

class QQLrcTVC: UITableViewController {

    
    // 暴露给外接, 需要外界赋值的数据源
    var lrcMs: [QQLrcModel] = [QQLrcModel]() {
        didSet {
            tableView.reloadData()
        }
    }
    
    var progress: CGFloat = 0 {
        didSet {
            
            // 1. 获取对应的cell  
            let indexPath = NSIndexPath(forRow: scrollRow, inSection: 0)
            let cell = tableView.cellForRowAtIndexPath(indexPath) as? QQLrcCell
    
            // 2. 给cell   progress 属性赋值
            cell?.progress = progress
            
            
        }
        
    }
    
    
    var scrollRow: Int = -1 {
        
        didSet {
            
            
            if scrollRow != oldValue {
//                print(scrollRow)
                
                // 一定要把刷新放到前面执行
                guard let indexPaths = tableView.indexPathsForVisibleRows else {
                    return
                }
                tableView.reloadRowsAtIndexPaths(indexPaths, withRowAnimation: UITableViewRowAnimation.Fade)
                
                
                let indexPath = NSIndexPath(forRow: scrollRow, inSection: 0)
                tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Middle, animated: true)
                
                
               
            }
            
            
           
          
        }
        
    }
    
    
    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.backgroundColor = UIColor.clearColor()
        tableView.separatorStyle = .None
        tableView.allowsSelection = false
        
        
    }
    
    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        tableView.contentInset = UIEdgeInsets(top: tableView.height * 0.5, left: 0, bottom: tableView.height * 0.5, right: 0)
    }

 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return lrcMs.count
    }


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = QQLrcCell.cellWithTableView(tableView)

        
        if indexPath.row == scrollRow {
            cell.progress = progress
        }else {
            cell.progress = 0
        }
        
        
        // 1. 取出歌词模型
        let lrcM = lrcMs[indexPath.row]
        // 2. 赋值
        cell.lrcContent = lrcM.lrcContent
        

        return cell
    }


  
}
